home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Pascal / System / PBGetInfo INIT / cdev.c next >
Encoding:
C/C++ Source or Header  |  1993-05-20  |  3.1 KB  |  200 lines  |  [TEXT/KAHL]

  1. #include "PBGetInfo.h"
  2. #include <SetUpA4.h>
  3.  
  4.  
  5. #define CHECKBOX    5
  6.  
  7.  
  8. char *strcpy(char *s1,char *s2);
  9. int strlen(char *s1);
  10. int strcmp(char *s1, char *s2);
  11.  
  12.  
  13. pascal long main(int message,int item, int numItems, int CPanelID, EventRecord *theEvent, long cdevValue, DialogPtr CPDialog)
  14. {
  15. long        retCode;
  16. Handle        itemHandle;
  17. Rect        itemRect;
  18. int            itemType;
  19. CInfoPBRec    myPBRec;
  20. char        tempString[256];
  21. Handle        lockStatusHandle;
  22. int            errCode;
  23.  
  24.  
  25.     RememberA0();
  26.     SetUpA4();
  27.     
  28.     retCode = cdevValue;
  29.     
  30.     switch (message)
  31.     {
  32.         case initDev:
  33.             GetDItem(CPDialog,CHECKBOX+numItems,&itemType,&itemHandle,&itemRect);
  34.             
  35.             if (itemHandle)
  36.             {
  37.                 lockStatusHandle = GetNamedResource('RoyW',lockStatus);
  38.                 
  39.                 if (lockStatusHandle)
  40.                 {
  41.                     if (strcmp((char *) *lockStatusHandle,LOCKMESSAGE) == EQSTR)
  42.                         SetCtlValue((ControlHandle) itemHandle,1);
  43.                     else
  44.                         SetCtlValue((ControlHandle) itemHandle,0);
  45.                 }
  46.                 
  47.                 else
  48.                     SetCtlValue((ControlHandle) itemHandle,0);
  49.             }
  50.             
  51.             break;
  52.             
  53.         case hitDev:
  54.             if (item - numItems == CHECKBOX)
  55.             {
  56.                 GetDItem(CPDialog,CHECKBOX+numItems,&itemType,&itemHandle,&itemRect);
  57.                 
  58.                 if (itemHandle)
  59.                 {
  60.                     SetCtlValue((ControlHandle) itemHandle,!GetCtlValue((ControlHandle) itemHandle));
  61.                     
  62.                     strcpy(tempString,LOCKMESSAGE);
  63.                     
  64.                     myPBRec.dirInfo.ioCompletion = 0L;
  65.                     myPBRec.dirInfo.ioNamePtr = (StringPtr) tempString;
  66.                     myPBRec.dirInfo.ioVRefNum = 0;
  67.                     myPBRec.dirInfo.ioFDirIndex = 0;
  68.                     myPBRec.dirInfo.ioDrDirID = 0L;
  69.                     
  70.                     lockStatusHandle = GetNamedResource('RoyW',lockStatus);
  71.             
  72.                     if (lockStatusHandle)
  73.                     {
  74.                         if (GetCtlValue((ControlHandle) itemHandle))
  75.                             strcpy(tempString,LOCKMESSAGE);
  76.                         else
  77.                             strcpy(tempString,UNLOCKMESSAGE);
  78.                         
  79.                         SetHandleSize(lockStatusHandle,(long) strlen(tempString) + 1L);
  80.                         strcpy((char *) *lockStatusHandle,tempString);
  81.                         
  82.                         ChangedResource(lockStatusHandle);
  83.                         WriteResource(lockStatusHandle);
  84.                     }
  85.                     
  86.                     else
  87.                     {
  88.                         SysBeep(1);
  89.                         SysBeep(1);
  90.                         SysBeep(1);
  91.                     }
  92.                     
  93.                     errCode = PBGetCatInfo(&myPBRec,FALSE);
  94.                     
  95.                     if (errCode != noErr)
  96.                     {
  97.                         SysBeep(1);
  98.                         SysBeep(1);
  99.                         SysBeep(1);
  100.                         SysBeep(1);
  101.                     }
  102.                 }
  103.                 
  104.                 else
  105.                 {
  106.                     SysBeep(1);
  107.                     SysBeep(1);
  108.                 }
  109.             }
  110.             
  111.             else
  112.                 SysBeep(1);
  113.             
  114.             break;
  115.         
  116.         case closeDev:
  117.             break;
  118.         
  119.         case nulDev:
  120.             break;
  121.         
  122.         case updateDev:
  123.             break;
  124.         
  125.         case activDev:
  126.             break;
  127.         
  128.         case deactivDev:
  129.             break;
  130.         
  131.         case keyEvtDev:
  132.             break;
  133.         
  134.         case macDev:
  135.             retCode = 1;
  136.             break;
  137.         
  138.         case undoDev:
  139.             break;
  140.         
  141.         case cutDev:
  142.             break;
  143.         
  144.         case copyDev:
  145.             break;
  146.         
  147.         case pasteDev:
  148.             break;
  149.         
  150.         case clearDev:
  151.             break;
  152.         
  153.         case cursorDev:
  154.             InitCursor();
  155.             break;
  156.     }
  157.     
  158.     RestoreA4();
  159.     
  160.     return(retCode);
  161. }
  162.  
  163.  
  164.  
  165. char *strcpy(char *s1,char *s2)
  166. {
  167.     do
  168.         *s1 = *s2++;
  169.         
  170.     while (*s1++);
  171. }
  172.  
  173.  
  174. int strlen(char *s1)
  175. {
  176. int        length;
  177.  
  178.     length = 0;
  179.     
  180.     while (*s1++)
  181.         length++;
  182.     
  183.     return(length);
  184. }
  185.  
  186.  
  187. int strcmp(char *s1, char *s2)
  188. {
  189.     while(*s1 == *s2 && *s2 && *s1)
  190.     {
  191.         s1++; 
  192.         s2++;
  193.     }
  194.     
  195.     if (*s1 == *s2) 
  196.         return(EQSTR);
  197.     else
  198.         return(!EQSTR);
  199. }
  200.